#ifndef __LOG_UTILS_H__
#define __LOG_UTILS_H__

namespace Log
{

// IMPORTANT NOTES: All of the below messages append a newline
// character (\n) to the string you give them automatically.

void Print(const char* fmt, ...);			// Prints a standard formatted message to the terminal.
void PrintGreen(const char* fmt, ...);	// Prints a standard formatted message to the terminal in green.

void Debug(const char* fmt, ...);			// Prints a formatted debug message in cyan, prefixed with "Debug: ".
void Error(const char* fmt, ...);			// Prints a formatted error message in red, prefixed with "Error: ".
void Warning(const char* fmt, ...);		// Prints a formatted warning message in yellow, prefixed with "Warning: ".


/*
 * Prints a message to a log file. The name of the file is the first parameter,
 * but that parameter should not include an invalid characters (i.e. /\:*"?|<>)
 * or a file extension as this will be appended automatically (as a .log extension).
 * The file name will also have a timestamp of when the file is created for clarity.
 *
 * Example file name: YourLogFileNameHere (Tue Jul 16 22-20-44 2013).log
 */
void LogToFile(const char *filename, const char *fmt, ...);

}

#endif // __LOG_UTILS_H__